1. Field
The present invention relates generally to control of a transfer of data, and more specifically for opportunistic use of a communication link.
2. Background
Consider an entity in which a number of applications are present that can automatically request and/or send information. For example, within the entity, there may reside a computer having software installed that is designed to transfer data over a communication system, such as, for example, PSTN, the Internet, or a local network, and using a wireless system and/or a landline such as with copper and/or fiber optic cable. The software can be placed on the computer to collect information as it becomes available or the software may decide when to request information. When requesting information, such information can be related to an information service, such as, for example, a web browser, a stock quote utility, email and Multimedia Messaging Service (MMS) utilities, an instant messaging (IM) client, networked games, a weather checker, etc. Examples of the types of information that can be received from the information services can be related to an email message status or content, stock quotes, the weather, or the location of another party such as through a cell phone/GPS apparatus. Such information can be considered as low priority in that the requirement for the data transfer is not immediate but may be stored until conditions exist that are more efficient for transfer to the remote device.
Transmission of information service data may be requested on a periodic or ad-hoc basis. Data sessions for such applications can be characterized by one or a combination of small data sizes, very large data sizes, clandestine data transfer, priority of data transfer, etc. If a user brings up a web browser and surfs to, say, the web page of a major news paper, this is considered fairly high priority because the user directly initiated a request for the data and is waiting for it to appear. If a remote user calls the user, again this can be considered high priority because a user directly initiated the call. In both cases, the formation of a communication link can be considered user initiated. The size of this data exchange may be large, while by contrast, if the stock or weather checkers want to see if anything major has changed, this may be a single data exchange of a very small size. Likewise, if the IM client needs to refresh its registration this will typically be a small exchange of one to four round-trips. If an email client checks for new mail, again in most cases this is very small and involves very few round trips. The priority of data exchange performed by this latter group is also low, because in most cases the user has not explicitly asked for nor is waiting on the data. Also, such exchanges can efficiently be done within periodic intervals. For example, a mail client may check for new mail every 20 minutes, an IM client may refresh its registration ever six hours, a weather checker may check with its server every two hours, etc. Thus, applications in this group may require periodic services regarding low-priority data services.
An entity such as a device which has data connectivity via cellular or PCS has several differences from a device that is connected to a typical LAN or other Internet connection. For our purposes, chief among them is that if a communication channel such as the traffic channel is dormant or not established, bringing it up is expensive and time-consuming. Therefore, if each of the periodic low priority applications were to act independently, each could bring up the traffic channel, conduct a very small, brief exchange of data, and then relinquish the traffic channel, which typically would return to dormancy (or some other inactive state) after some period of inactivity. The aggregate effect of a number of such applications would be excessive and wasteful traffic channel usage. Especially when the amount of data to be exchanged is small, the cost of bringing the traffic channel up and down becomes high compared to the amount of data exchanged. By contrast, when a larger amount of data is exchanged, the cost of bringing the traffic channel up and down is spread over more traffic.
There are several potential solutions to this problem. Most commonly, the application and its server can be designed such that instead of the application making periodic checks with its server, the server sends an asynchronous notification to the application when something “interesting” happens. This is attractive because it promises efficient traffic channel use and immediate (or nearly so) notifications. However, there are also several negative consequences, including the need for a common notification mechanism, the lack of such mechanism within the Internet, the need to guard against malicious or excessive notifications, the difficulty in assuring timely delivery of notifications, and the lack of applicability to all cases.
An email or MMS client may receive a large number of notifications if it receives one as each email or MMS message arrives. The email or MMS server, the weather server, the stock quote server, etc. may be operated by different services at different locations and may not have a business relationship with the carrier, and thus may have difficulty sending notifications. The carrier may need to block the ability of outside parties to send notifications to avoid being ‘spammed’ by an excessive number of legitimate or malicious notifications. Because such notifications are typically sent using common channels, a large amount of them can have a negative impact on the carrier's network. Standard Internet services do not usually include such notification features, and so each would need to be custom developed and deployed.
Finally, notifications do nothing to help in cases where the application needs to renew a registration or otherwise periodically exchange data with a server. Also, if the application responds to the notification by bringing up the traffic channel and exchanging data, the frequency of such notifications may actually cause a higher expense than in polling.
Other potential solutions include co-operation among all applications which need periodic low priority data services. However, this requires special design elements and is not possible in many cases, unless all services are developed by the same source.
Now consider an entity in which a number of applications are present that can automatically send collected information. For example, within the entity, there may reside a computer having software installed that is designed to transfer data over the communication system. The software can be placed on the computer to collect information as it becomes available to store for the later transmission.
Such software can be a cookie. A cookie can be pieces of information generated by a Web server and stored in a user's computer, ready for future access. Cookies are embedded in the HTTP information flowing back and forth between the user's computer and the servers. Cookies were implemented to allow customization of Web information. For example, cookies can be used to personalize Web search engines and to store the user's personal information or the shopping lists of items the user has selected while browsing through a virtual shopping mall.
Essentially, cookies make use of user-specific information transmitted by the Web server onto the user's comptiter so that the information might be available for later access by itself or other servers. A user may be aware of the general existence, placement and use of cookies but an application of a particular cookie is usually unnoticed and exactly what information is stored by the cookie may be unknown as well. In many cases, Web servers can subsequently and automatically gain access to relevant cookies whenever the user establishes a connection to them, usually in the form of Web requests.
Marketers and advertisers can use cookies to track personal preferences. They don't know who we are, but they may know our viewing, and, if we buy online, our shopping habits. This information is used to target us with ads they think we would be interested in based on previous buying and visiting habits. Someone whose habits showed an interest in gardening would see different ads than someone whose main interest seemed to be computers, while viewing the same page on the same site.
Another form of cookies called tracking cookies are not exclusive to the site that gives them to you because the site you visit is not actually giving them to you. Ads containing cookies are downloaded from separate servers at the time the web page is requested. So, the cookies you are receiving come from these servers when the ads are loaded, not the site you are visiting.
“DoubleClick” tracking cookies are given at all of their clients' sites, and are reported back to DoubleClick each time someone visits one of those clients. DoubleClick is a global marketer and says on its site that they “deliver 10 billion ads every month. When you visit a site with a DoubleClick cookie, that visit and any information offered, purchases, etc., are recorded. Then, the next minute, day, or a month later, if you visit another DoubleClick site, that information is captured, until eventually, sooner than you think, DoubleClick has a profile on someone's Internet habits, which they use for marketing and advertising purposes.
Cookies can be used by website owners to remember the user's preferences and by advertisers to track the user's online habits. Cookies do not identify the user, but cookies can keep track of the user's movements from page to page on a website. Generally, cookies will not transmit the data they contain unless a corresponding website has been reached by the user, such a website being where the user has provided the information originally.